package tcpdemo;

import java.io.*;
import java.net.Socket;
import java.util.Scanner;

public class ClientThread extends Thread{
    //重写run方法
    public  void  run(){
        //创建客户端的Socket
        try {
            //创建客户端的Socket
            //第一个参数是服务器的地址：ip地址，服务器的局域网名等，
            //第二个参数是服务器的端口号，需要和服务器保持一致
           Socket socket = new Socket("10.1.254.50",9901);

                //使用socket和客户端进行通信
            /////////////发送消息///////////////////////
                //System.out.println("//////////////发送信息/////////////////");
                //获取socketde 输出流对象
                BufferedWriter bufferedWriter = new BufferedWriter(
                        new OutputStreamWriter(socket.getOutputStream(),"utf-8")
                );
                //发送消息
                String strMsg = "你好 too，中国===============";

                //客户端发送消息从控制台读入
            Scanner scanner = new Scanner(System.in);
            System.out.println("请输入客户端发送到消息：");
            strMsg = scanner.nextLine();

            System.out.println("客户端："+strMsg);
            bufferedWriter.write(strMsg);
            bufferedWriter.newLine();//相当于发送一格换行符

            //附加一个回车符
            bufferedWriter.write("eof");
            bufferedWriter.write("\n");
            //清空输出流的发送区域，将信息发送到网络上
            bufferedWriter.flush();
          ///////////////////接收信息////////////////////////////
           // System.out.println("============接收信息=============");
            //获取socket的输入流对象
            BufferedReader bufferedReader = new BufferedReader(
                    new InputStreamReader(socket.getInputStream(),"utf-8")
            );
            //读取信息
            while (true){
                String str = bufferedReader.readLine();
                if (str !=null && !str.equals("eof")){
                    //业务逻辑处理的地方
                    System.out.println("客户端："+str);
                }else {
                    //终止循环读取信息
                    break;
                }
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
